package com.wing.sell.model.response;

import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.wing.sell.model.entity.Agent;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import java.time.LocalDateTime;

/**
 * 销售代理商经销记录VO
 *
 * @author
 */
@Data
@NoArgsConstructor
@Accessors(chain = true)
public class AgentVO {

    /**
     * ID
     */
    private Long id;

    /**
     * 创建时间
     */
    @JsonFormat(timezone = "GMT+8" , pattern = "yyyy-MM-dd HH:mm:ss" )
    private LocalDateTime createTime;

    /**
     * 创建者
     */
    private Long creator;

    /**
     * 修改者
     */
    private Long modifier;

    /**
     * 创建人
     */
    private String creatorName;

    /**
     * 修改人
     */
    private String modifierName;

    /**
     * 代理商名称
     */
    private String name;

    /**
     * 营业执照号
     */
    private String licenseNo;

    /**
     * 营业执照照片
     */
    private String licensePhoto;

    /**
     * 代理商所属级别
     */
    private Long agtLevel;

    /**
     * 省id
     */
    private Long provinceId;

    /**
     * 市id
     */
    private Long cityId;

    /**
     * 区县ID
     */
    private Long areaId;

    /**
     * 详细地址
     */
    private String addr;

    /**
     * 收款银行名
     */
    private String bankName;

    /**
     * 收款银行户名
     */
    private String bankAccount;

    /**
     * 收款银行号码
     */
    private String bankCard;

    /**
     * 开户许可证
     */
    private String openingPermit;

    /**
     * 代理商来源
     */
    private Agent.SourceId sourceId;

    /**
    * 代理商来源描述
    */
    @TableField(exist = false)
    private String sourceIdDesc;

    public String getSourceIdDesc() {
        return sourceId.getDesc();
    }

    /**
     * 代理商类型
     */
    private Agent.Type type;

    /**
    * 代理商类型描述
    */
    @TableField(exist = false)
    private String typeDesc;

    public String getTypeDesc() {
        return type.getDesc();
    }

    /**
     * 对接人
     */
    private String counterpart;

    /**
     * 代理商分类
     */
    private Long agentCategoryId;

    /**
     * 代理商状态
     */
    private Agent.Status status;

    /**
    * 代理商状态描述
    */
    @TableField(exist = false)
    private String statusDesc;

    public String getStatusDesc() {
        return status.getDesc();
    }

    /**
     * 代理商有效性
     */
    private Agent.Validity validity;

    /**
     * 代理商有效性描述
     */
    @TableField(exist = false)
    private String validityDesc;

    public String getValidityDesc() {
        return validity == null ? null : validity.getDesc();
    }

}
